package com.songlanyun.modules.integralrecord.model.dto;

import com.songlanyun.common.drive.ValueObject;
import com.songlanyun.common.enums.BillConstant;
import com.songlanyun.common.enums.IntegralConstant;
import com.songlanyun.common.enums.OpusConstant;
import lombok.Data;

import javax.validation.constraints.NotNull;

@Data
public class SaveIntegralDTO implements ValueObject {

    public SaveIntegralDTO() {
    }

    public SaveIntegralDTO(Long userId, Integer value, BillConstant.BillMode billType, IntegralConstant.InnerMode mode,
                           IntegralConstant.IntegralModelType modelType, Long modelId, String remark) {
        this.userId = userId;
        this.value = value;
        this.billType = billType;
        this.mode = mode;
        this.modelType = modelType;
        this.modelId = modelId;
        this.remark = remark;
    }

    /**
     * 会员id
     */
    @NotNull
    private Long userId;
    /**
     * 积分值
     */
    @NotNull
    private Integer value;
    /**
     * 收入支出类型
     */
    @NotNull
    private BillConstant.BillMode billType;
    /**
     * 收入支出详细方式
     */
    @NotNull
    private IntegralConstant.InnerMode mode;
    /**
     * 获得积分来源
     */
    @NotNull
    private IntegralConstant.IntegralModelType modelType;
    /**
     * 来源id
     */
    @NotNull
    private Long modelId;
    /**
     * 备注
     */
    @NotNull
    private String remark;
}
